Introduce a cloud-deploy-pipelines skill#85
Introduce a cloud-deploy-pipelines skill#85mattsanta wants to merge 5 commits intogemini-cli-extensions:mainfrom
Conversation
…rough the process of designing a Cloud Deploy delivery pipeline
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a new skill designed to streamline the creation of Google Cloud Deploy delivery pipelines. It provides a structured approach for users to define their deployment environments, configure advanced strategies like canary deployments and automatic rollbacks, and generate necessary configuration files for Cloud Run and GKE applications. The goal is to simplify the setup process for continuous delivery on Google Cloud. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new skill for designing Cloud Deploy pipelines, which is a valuable addition. The documentation is well-structured and comprehensive. I've identified a few areas for improvement, including a minor typo, a convention-related issue regarding file endings, and a significant error in a Skaffold YAML example that would cause it to fail. The details and suggestions for fixes are provided in the specific comments.
Note: Security Review has been skipped due to the limited scope of the PR.
skills/cloud-deploy-pipeline-designer/references/configure-skaffold.md
Outdated
Show resolved
Hide resolved
skills/cloud-deploy-pipeline-designer/references/basic-cloudrun-manifests.md
Outdated
Show resolved
Hide resolved
|
/gcbrun |
| --- | ||
| name: cloud-deploy-pipelines | ||
| description: > | ||
| Design Cloud Deploy delivery pipelines and manage releases when deploying applications to Cloud Run and Google Kubernetes Engine (GKE). Use when users want to deploy their applications to multiple environments (e.g. dev and prod), leverage deployment strategies (i.e. canary), or enable automatic rollbacks when there are issues with the rollout. Should also be used if the user is already using Cloud Deploy and wants to create releases, promote releases across environments, or debug release failures. |
There was a problem hiding this comment.
not just automatic, if they need just the rolling back feature they should cloud deploy.
There was a problem hiding this comment.
I will suggest updating last sentence:
Should also be used if the user is already using Cloud Deploy and wants to create releases, promote releases across environments, rollback a release, or debug release failures.
|
|
||
| Ensure that the `clouddeploy.yaml` file is valid. See https://docs.cloud.google.com/deploy/docs/config-files for the schema. |
There was a problem hiding this comment.
Is there a dry run command for gcloud deploy apply?
|
|
||
| ### Step 1: Define the target environments | ||
|
|
||
| 1. Identify the number of environments (e.g., dev, staging, production). |
There was a problem hiding this comment.
Can we qualify environment to "deployment environment"?
We are using "environment" in multiple skills, e.g. analyze local environment, and I am not sure just environment will confuse LLM
| 2. Create a `skaffold.yaml` file required to create a Cloud Deploy `Release` for the `DeliveryPipeline`. | ||
| - Use `references/configure-skaffold.md` as a reference when generating the `skaffold.yaml` file. | ||
|
|
||
| ## Release Management |
There was a problem hiding this comment.
Should this be
## Workflow: Release Management
There was a problem hiding this comment.
It intentionally isn't. The Release Management section covers a number of different scenarios related to release management but they aren't necessarily meant to be a workflow that's executed step by step. For example, creating a release doesn't mean I want to promote a release immediately after. This section could (and likely would) expand to include more information for the agent such as manually rolling back a release, which again isn't always applicable.
This is the section that I initially wanted to provide as a separate skill, but as discussed over chat we're sticking to 1 skill for now.
There was a problem hiding this comment.
I also plan to add another section at the same level of Workflow: Designing a Pipeline and Release Management that will give the agent more guidance for setting up more complex features in the pipeline that we don't necessarily want to include as a part of the "guided" design workflow. Reasoning behind this is to avoid overwhelming the user with questions for setting up an initial pipeline.
|
|
||
| ## Release Management | ||
|
|
||
| This section covers the various aspects of managing Cloud Deploy `Release` resources. |
There was a problem hiding this comment.
Does it make sense to match previous workflow style comment e.g.
This workflow provides the various aspects of managing Cloud Deploy `Release` resources.
There was a problem hiding this comment.
See other comment about "workflow"
This skill provides a workflow for guiding users through the process of setting up a Cloud Deploy delivery pipeline and managing releases.
One notable thing is that the skill requires gcloud since Cloud Deploy's YAML for declarative resources is a gcloud concept.
Can be further expanded to support information related to non-deploy jobs, e.g. deploy hooks and/or verify.